home *** CD-ROM | disk | FTP | other *** search
/ USA Bestseller / USA BESTSELLER Vol 1-95 (Hepp-Computer)(1995).iso / e204 / ucalc.doc < prev    next >
Text File  |  1994-08-16  |  50KB  |  1,264 lines

  1.     =======================================================================
  2.     
  3.                             ULTIMATE CALCULATOR 2.4
  4.                    Copyright (C) 1992-1994 by Daniel Corbier
  5.                              All Rights Reserved.
  6.     
  7.     =======================================================================
  8.     
  9.     
  10.     CONTENTS
  11.     --------
  12.     
  13.     1.  Introduction
  14.     2.  UCALC Features
  15.     3.  Getting Started
  16.         3.1 Installation
  17.         3.2 Running UCALC
  18.     4.  DOS Command Line
  19.     5.  UCALC Prompt
  20.     6.  Table of Symbols
  21.     7.  Order of Precedence
  22.     8.  Flexible Syntax
  23.     9.  GRAPHING
  24.         9.1 Setting the screen coordinate system (WINDOW)
  25.         9.2 Turning colors off (MONO)
  26.         9.3 Automatic coloring (AUTOCLR)
  27.         9.4 Graphing precision (PREC)
  28.         9.5 Graphic card selection
  29.         9.6 Plotting
  30.             9.6.1 Cartesian
  31.             9.6.2 Parametric
  32.             9.6.3 Polar
  33.             9.6.4 Plotting data from another file
  34.             9.6.5 Line segment
  35.             9.6.6 Rectangle
  36.             9.6.7 Filling an area
  37.         9.7 Moving the crosshair
  38.         9.8 Printing a graphic screen
  39.     10. Summation
  40.     11. Numerical Integration
  41.     12. Solving Equations
  42.     13. LOAD command
  43.     14. WRITE command
  44.     15. SHELL command
  45.     16. Numerical Notations
  46.     17. Implicit Multiplications
  47.     18. Assigning Variables
  48.     19. Assigning Functions
  49.     20. UCALC.DEF
  50.     21. Technical Notes
  51.     22. Registration
  52.     23. Shareware Author & User Case Study
  53.     24. My Address
  54.     25. Distribution
  55.     26. Acknowledgments
  56.     
  57.     
  58.     1. Introduction
  59.        ============
  60.     
  61.     UCALC is a graphic scientific calculator which can evaluate
  62.     expressions, solve equations, plot equations, perform numerical
  63.     integrations, and do summations.  It supports many built-in functions,
  64.     operators, numerical notations, and modes.  It also allows for
  65.     user-defined functions and variables.  Expressions such as the
  66.     following are accepted:
  67.     
  68.         63 - 5 + 4.821
  69.     
  70.         (5.9-abs(2.8/5-3))^2 + sin( 3-(pi+3/4)*myfunction(x,y) )
  71.     
  72.         sum(x^2+x-2,1..500)
  73.     
  74.         solve(3*x^2+2*x-5=27)
  75.     
  76.         integ(x^2*sin(x),1..5)
  77.     
  78.         #b101010 and (#b10101 or #h1CC) * 2^5
  79.     
  80.         15 * sin(pi/4)+abs(10-(5+log(20))^2+9)-#b101110111
  81.     
  82.         plot sin(x)*x^2/10
  83.     
  84.         plot x=sin(t)-sin(2t), y=cos(t)-cos(2t)
  85.     
  86.         plot r=t/pi, 0..10pi
  87.     
  88.     
  89.     2. UCALC Features
  90.        ==============
  91.     
  92.     - Math expression evaluator
  93.     - Fast equation plotting
  94.     - Equations can be solved
  95.     - Supports user defined variables
  96.     - Supports user defined functions which allow many arguments
  97.     - Radian, degree, and gradient modes for trig functions
  98.     - Decimal, hexadecimal, binary and octal notations
  99.     - Summations
  100.     - Numerical integration
  101.     - Support for up to 16 supper-imposed multi-color user graphs
  102.     - Cartesian (rectangular), Polar, and Parametric user graphs
  103.     - High precision: 18 significant digits.  +/-3.4E-4932 to +/-1.2E+4932
  104.     - Online help with F1
  105.     - Flexible syntax
  106.     - Line editor with expression recall
  107.     - Expressions can also be entered at the DOS command line
  108.     - Arithmetic operators
  109.     - Bitwise operators
  110.     - Relational operators
  111.     - Trig functions
  112.     - Hyperbolic functions
  113.     - Common functions such as factorial, absolute value, log, etc...
  114.     - Implicit multiplication
  115.     - Commands to list all user variables & functions
  116.     - DOS redirection
  117.     - Adjustable FIX notation
  118.     - Adjustable number of digits
  119.     - LOAD & WRITE commands to retrieve or save a session
  120.     - PRINT command to send text output to the printer
  121.     - SHELL command to temporarily go to DOS
  122.     - CGA, EGA, Hercules, and VGA modes for graphing
  123.     - LINE, FILL, and RECTangle commands
  124.     - Data from another file can be plotted
  125.     - Smart graphic crosshair
  126.     - Adjustable screen coordinate system
  127.     - Adjustable precision for graphs
  128.     
  129.     
  130.     3. Getting Started
  131.        ===============
  132.     
  133.        3.1 Installation
  134.            ------------
  135.     
  136.     Copy UCALC.EXE to a directory defined in the PATH statement of your
  137.     AUTOEXEC.BAT file (such as your DOS or UTILS directory).  If you do
  138.     most of your calculations at the command line, then you can put it in a
  139.     RAM drive for faster loading.  UCALC can also be run from the current
  140.     directory.
  141.     
  142.     UCALC is ready to run as-is.  But it can be customized by creating a
  143.     file named UCALC.DEF, and entering certain settings.  This file can be
  144.     placed in the same directory as UCALC.EXE.  See UCALC.DE as an example. 
  145.     That file can be modified and renamed UCALC.DEF.
  146.     
  147.     
  148.        3.2 Running UCALC
  149.            -------------
  150.     
  151.     There are two ways of running the Ultimate Calculator.  The first way
  152.     is to enter your expression at the DOS command line as follows:
  153.     
  154.     UCALC 5+4*8/2 [enter]
  155.     
  156.     UCALC also provides a line editor for performing multiple calculations.
  157.     This environment allows you to assign values to variables, and define
  158.     functions as you go along.  To run UCALC in that mode, simply invoke
  159.     UCALC at the DOS command line without any expression as follows:
  160.     
  161.     UCALC [enter]
  162.     
  163.     When you are in this mode, you can press [F1] any time for help, and
  164.     [Esc] to quit the program.  See EXAMPLES.DOC to get more ideas on how
  165.     to use UCALC.  For a graphic demo, enter   UCALC < PLOTDEMO   from the
  166.     DOS prompt.
  167.     
  168.     
  169.     4. DOS Command Line
  170.        ================
  171.     
  172.     At the DOS command line, you can type UCALC followed by one of these
  173.     options:
  174.     
  175.     /?        Help
  176.     /NODEF    Does not load UCALC.DEF
  177.     
  178.     If an expression is present at the command line, it is evaluated, and
  179.     control returns to DOS.  Otherwise, you are left at the 'ucalc> '
  180.     prompt, where you may enter several expressions and quit with [Esc]. 
  181.     If a symbol in your expression is in conflict with DOS, then enclose
  182.     the expression in quotes.
  183.     
  184.     Examples:
  185.     ---------
  186.     
  187.     UCALC /NODEF
  188.     
  189.     UCALC "5^4 | 5*8"
  190.     
  191.     See EXAMPLES.DOC for a sample session.
  192.     
  193.     
  194.     5. UCALC Prompt
  195.        ============
  196.     
  197.     At the 'ucalc> ' prompt, expressions to be evaluated can be entered,
  198.     functions and variables can be defined, and the following commands, and
  199.     function keys can be entered:
  200.     
  201.     [F1] Help                   (same as HELP or ?)
  202.     [F2] Lists variables        (same as LIST)
  203.     [F3] Displays UCALC.DEF     (same as LIST DEF)
  204.     [F4] DOS shell              (same as SHELL)
  205.     [F5] Lists user functions   (same as LISTF)
  206.     [Esc] Quit                  (same as QUIT, see also EXIT)
  207.     
  208.     AUTOCLR [nn]             Sets the number of colors used in graphing.
  209.     CLOSE                    Closes the file opened with the WRITE command.
  210.     CLS                      Clears the screen.
  211.     DIG nn                   Changes the total number of digits displayed.
  212.     EXIT                     Exits to DOS without asking if you're sure.
  213.     FIX nn                   Changes number of decimal digits displayed.
  214.     HELP                     Gives online help (same as F1 or ?).
  215.     INTEG(fx,a..b [,n])      Numerical integration.
  216.     LIST                     Lists user defined variables (same as F2).
  217.     LISTF                    Lists user defined functions (same as F5).
  218.     LIST DEF                 Displays the contents of UCALC.DEF (F3).
  219.     LOAD"filename"           Loads a file.
  220.     MODE {DEG|RAD|GRA}       Changes mode to degree, radian, or gradient.
  221.     MODE {HGC|CGA|EGA|VGA}   Sets the graphic mode.
  222.     MODE HBO                 Toggles the hex, binary, octal answer display.
  223.     MONO                     Turns graphic mode colors off.
  224.     PLOT [equation]          Plots user equations.
  225.     PREC nn                  Changes the precision used in graphing.
  226.     PRINT [ON|OFF]           Prints the current session as you work.
  227.     PROMPT"yourprompt"       Changes or removes the "ucalc> " prompt.
  228.     PROMPTA"yourprompt"      Changes or removes the "Answer: " prompt.
  229.     QUIT                     Exits to DOS, and asks if you're sure.
  230.     SHELL                    Shells to DOS (same as F4).
  231.     SHELL"command"           Executes a DOS command.
  232.     SOLVE(fx [=fx] [,a..b])  Solves an equation.
  233.     SUM(fx,a..b [,dx])       Summation of function fx ranging from a to b.
  234.     SUMTABLE(fx,a..b [,dx])  Summation which displays intermediate results.
  235.     WINDOW(x1,x2,y1,y2)      Changes the screen coordinate system.
  236.     WRITE"filename"          Records your session to a file.
  237.     
  238.     The variable 'last' contains the value of the previous computation.
  239.     Variable 'x' is the parameter which should be used with SUM, SUMTABLE,
  240.     and SOLVE.  Selections which appear inside brackets [] are optional.
  241.     
  242.     At the 'ucalc> ' prompt, the up (or down) arrow keys can be used to
  243.     recall previous expressions.  Several characters may be keyed in before
  244.     pressing the up arrow in order to recall an expression starting with
  245.     those characters.
  246.     
  247.     
  248.     6. Table of Symbols
  249.        ================
  250.     
  251.     Symbol   Equivalent   Description                       Example
  252.     ------   ----------   -----------                       -------
  253.     ( )                   Prioritizes an expression         5*(1+1) = 10
  254.     
  255.     !                     Factorial                              5! = 120
  256.     ^        **           Raised to the power of            4  ^  5 = 1024
  257.     *                     Multiply by                       3  *  6 = 18
  258.     /                     Divide by                         9  /  2 = 4.5
  259.     %        MOD          Modulo                            7  %  4 = 3
  260.     +                     Add                               1  +  1 = 2
  261.     -                     Subtract                          9  -  5 = 4
  262.     
  263.     >                     Greater than                      9  >  2 = 1
  264.     <                     Less than                         7  <  4 = 0
  265.     =        ==           Equal test                        5  =  4 = 0
  266.     >=       =>           Greater or equal                  3  >= 3 = 1
  267.     <=       =<           Less or equal                   $3E  <= 9 = 0
  268.     <>                    Not Equal                   #b10101 <> 20 = 1
  269.     
  270.     NOT                   Bitwise 'not'                     not(15) = -16
  271.     AND       &           Bitwise 'and'              #b101 and #h1E = 4
  272.     OR        |           Bitwise 'or'                     13 or 6  = 15
  273.     XOR                   Bitwise 'exclusive or'           9 xor 3  = 10
  274.     EQV                   Bitwise 'equivalence'            6 eqv 9  = -16
  275.     IMP                   Bitwise 'implication'            1 imp 5  = -1
  276.     
  277.     SIN                   Sine                              sin(pi) = 0
  278.     COS                   Cosine                            cos(pi) = -1
  279.     TAN                   Tangent                           tan(pi) = 0
  280.     ASIN                  Arcsine                           asin(1) = 1.570
  281.     ACOS                  Arccosine                        acos(-1) = 3.141
  282.     ATAN      ATN         Arctangent                        atan(0) = 0
  283.     
  284.     SINH                  Hyperbolic sine                   sinh(3) = 10.01
  285.     COSH                  Hyperbolic cosine                 cosh(2) = 3.762
  286.     TANH                  Hyperbolic tangent                tanh(1) = 0.761
  287.     COTH                  Hyperbolic cotangent              coth(1) = 1.318
  288.     SECH                  Hyperbolic secant                 sech(0) = 1
  289.     CSCH                  Hyperbolic cosecant               csch(1) = 0.850
  290.     ASINH                 Hyperbolic arcsine               asinh(2) = 1.443
  291.     ACOSH                 Hyperbolic arccosine             acosh(9) = 2.887
  292.     ATANH                 Hyperbolic arctangent           atanh(.5) = 1.098
  293.     ACOTH                 Hyperbolic arccotangent          acoth(7) = 0.143
  294.     ASECH                 Hyperbolic arcsecant            asech(.3) = 1.873
  295.     ACSCH                 Hyperbolic arccosecant           acsch(2) = 0.481
  296.     
  297.     ABS                   Absolute value                    abs(-8) = 8
  298.     EXP                   e to the power of                  exp(3) = 20.08
  299.     RND                   Random number                      rnd(1) = .9686
  300.     INT                   Truncate to an integer           int(6.8) = 6
  301.     CEIL                  Round upward                    ceil(6.8) = 7
  302.     EXP2                  2 to the xth power                exp2(3) = 8
  303.     EXP10                 10 to the xth power              exp10(3) = 1000
  304.     FACT                  Factorial                         fact(5) = 120
  305.     LOG2                  Log base 2                        log2(8) = 3
  306.     LOG10                 Log base 10                    log10(100) = 2
  307.     LOG        LN         Natural log                       log(16) = 2.77
  308.     SGN        SIGN       Sign of expression                sgn(-9) = -1
  309.     SQR        SQRT       Square root                       sqr(64) = 8
  310.     
  311.     
  312.     7. Order of Precedence
  313.        ===================
  314.     
  315.     Here is the precedence list from highest to lowest priority:
  316.     
  317.     Anything inside parenthesis is performed first  ( )
  318.     Factorial                                       !
  319.     Exponentiation                                  ^
  320.     Multiplication, division                        *, /
  321.     Modulo                                          MOD
  322.     Addition, subtraction                           +, -
  323.     Relational operators                            <, >, >=, <=, =, <>
  324.     AND
  325.     OR, XOR (exclusive or)
  326.     EQV (equivalence)
  327.     IMP (implication)
  328.     
  329.     When consecutive operators have the same priority, UCALC evaluates from
  330.     left to right.  This means that an expression such as "a-b-c" is
  331.     evaluated as "(a-b)-c".
  332.     
  333.     
  334.     8. Flexible Syntax
  335.        ===============
  336.     
  337.     UCALC is designed to work in a simple and familiar way, and
  338.     accommodates itself to several styles, so that users may start being
  339.     productive the very first time the program is executed.  Refer to '6.
  340.     Table of Symbols' for the alternative notations of several operators
  341.     and functions.  The entries below which are grouped together are
  342.     equivalent:
  343.     
  344.     ucalc> LOAD"myfile"   ; The interchangeability of the quote and
  345.     ucalc> LOAD myfile    ; parenthesis, or lack of either is also possible
  346.     ucalc> LOAD(myfile)   ; for MODE, FIX, DIG, AUTOCLR, and PREC.
  347.     
  348.     ucalc> SOLVE(x^2=100) ; The outer parenthesis can also be omitted in
  349.     ucalc> SOLVE x^2=100  ; WINDOW, INTEG, SUM, and SUMTABLE.
  350.     
  351.     ucalc> SUMTABLE(x, 1..10)       ; Any entry which uses '..' can
  352.     ucalc> SUMTABLE(x, 1 to 10)     ; also use ' TO ' instead.
  353.     ucalc> SUMTABLE x, 1 to 10
  354.     
  355.     ucalc> PLOT y=x^2               ; 'y=' can be omitted for these types
  356.     ucalc> PLOT x^2                 ; of graphic equations.
  357.     
  358.     ucalc> PLOT x=t, y=t^2, -5..5   ; 'x=' and 'y=' can be omitted
  359.     ucalc> PLOT t, t^2, -5..5
  360.     ucalc> PLOT t, t^2, -5 to 5
  361.     
  362.     
  363.     9. GRAPHING
  364.        ========
  365.     
  366.     To see a demonstration of some of UCALC's graphing capabilities, enter
  367.     the following at the DOS prompt:
  368.     
  369.     UCALC < PLOTDEMO
  370.     
  371.     Make sure that the PLOTDEMO, GRAPH1.DAT, and GRAPH2.DAT files are in
  372.     the current directory.
  373.     
  374.     
  375.        9.1 Setting the screen coordinate system (WINDOW)
  376.            ---------------------------------------------
  377.     
  378.     Syntax:  WINDOW(x1,x2,y1,y2)
  379.     
  380.     This modifies the graphic screen coordinate system.  (x1,y1) represents
  381.     the lower left hand corner of the screen, and (x2,y2) represents the
  382.     upper right hand corner.  The default is WINDOW(-10,10,-7.5,7.5), which
  383.     means that the origin (0,0) is at the center of the screen, with point
  384.     (-10,-7.5) at the bottom left of the screen and (10,7.5) at the top
  385.     right of the screen.
  386.     
  387.     Examples:
  388.     ---------
  389.     
  390.     ucalc> WINDOW(0,10,0,7.5)
  391.     This sets the origin at the bottom left of the screen.
  392.     
  393.     ucalc> WINDOW(-1,1,-1,1)
  394.     The origin is at the center, and x goes from -1 to 1, and so does y.
  395.     
  396.     
  397.        9.2 Turning colors off (MONO)
  398.            -------------------------
  399.     
  400.     Syntax:  MONO
  401.     
  402.     This turns all colors off in the graphic mode.  Those who do not have a
  403.     color monitor may want to include this command in UCALC.DEF.  This
  404.     command may also be useful for a better printout, or when filling the
  405.     area between graphs (with FILL).
  406.     
  407.     
  408.        9.3 Automatic coloring (AUTOCLR)
  409.            ----------------------------
  410.     
  411.     Syntax:  AUTOCLR [nn]
  412.     
  413.     This command causes each consecutive graph to be displayed in a
  414.     different color.  The optional 'nn' parameter indicates how many
  415.     different colors can be used.  The default is 15.  If some graphs turn
  416.     out to be invisible, then a smaller number should be chosen for 'nn'. 
  417.     The CGA mode does not use color.
  418.     
  419.     Examples:
  420.     ---------
  421.     
  422.     ucalc> AUTOCLR          ; Allows 15 different colors (default)
  423.     ucalc> AUTOCLR 3        ; Tells UCALC to use only 3 different colors
  424.     
  425.     
  426.        9.4 Graphing precision (PREC)
  427.            -------------------------
  428.     
  429.     Syntax:  PREC nn
  430.     
  431.     This changes the precision used in graphing.  The higher 'nn' is, the
  432.     higher the precision will be.  More precision naturally means slower
  433.     plotting.  The default precision is 10, and should be fine for many
  434.     graphs.  If stray lines appear in an unbounded graph, or if the graph
  435.     appears jagged, or if the curve doesn't quite reach the starting or
  436.     ending points (such as in polar graphs) then raising the precision
  437.     should solve the problem.
  438.     
  439.     Example:
  440.     --------
  441.     
  442.     ucalc> PREC 100
  443.     
  444.     
  445.        9.5 Graphic card selection
  446.            ----------------------
  447.     
  448.     Syntax:  MODE {CGA | EGA | HGC | VGA}
  449.     
  450.     This changes the graphic mode that is used for plotting.  When UCALC
  451.     loads up, it automatically determines which type of graphic card is
  452.     being used.  If it cannot do so properly, then put a MODE statement in
  453.     UCALC.DEF, with the proper selection.
  454.     
  455.     Example:
  456.     --------
  457.     
  458.     ucalc> MODE EGA               ; Sets the monitor to EGA mode
  459.     
  460.     
  461.        9.6 Plotting
  462.            --------
  463.     
  464.     Syntax:      PLOT equation
  465.              or  PLOT
  466.     
  467.     This plots user equations.  If an equation is entered on the same line
  468.     as the PLOT command, then it will be plotted.  If PLOT is entered alone
  469.     at the 'ucalc> ' command line, then the user will be asked to enter
  470.     several equations.  Press [return] twice when finished entering
  471.     equations.  Up to 16 user equations can be displayed simultaneously.
  472.     
  473.     NOTE:  Unlike expressions that are evaluated at the 'ucalc> ' prompt,
  474.            equations that are going to be plotted aren't checked for
  475.            certain errors.  Division by 0, square root of negative numbers,
  476.            etc... do not stop the graph from being plotted.
  477.     
  478.     Examples:
  479.     ---------
  480.     
  481.     ucalc> PLOT sin(x)
  482.     
  483.     ucalc> PLOT r=t/5
  484.     
  485.     ucalc> PLOT 2x+7
  486.     
  487.     ucalc> PLOT          ; PLOT by itself prompts for multiple equations
  488.     Equation 1: x^2           ; Plots a parabola
  489.     Equation 2: fill(1,3)     ; Fills an area bounded by the equation above
  490.     Equation 3: line(2,3,-1,5); Line segment from (2,3) to (-1,5)
  491.     Equation 4: r=t^2/pi      ; Polar equation
  492.     Equation 5: cos(x), sin(x); Parametric equation
  493.     Equation 6:
  494.     
  495.     After hitting [enter] on the blank line, it will plot the 5 entries
  496.     above.  Any combination of equations can be entered.  The plotting of
  497.     an equation can be aborted at any time, by hitting any key.
  498.     
  499.     The following entries can be plotted:
  500.     
  501.     
  502.            9.6.1 Cartesian
  503.                  ---------
  504.     
  505.     Syntax:  y = f(x)             (or simply f(x))
  506.     
  507.     This plots a curve in the rectangular coordinate system (Cartesian). 
  508.     As a shortcut, the 'y=' can be omitted.  For instance, 'y=x^2' can
  509.     simply be entered as 'x^2'.  The variable parameter is 'x'.
  510.     
  511.     Examples:
  512.     ---------
  513.     
  514.     PLOT y=tan(x)
  515.     
  516.     PLOT sin(x)-3
  517.     
  518.     
  519.            9.6.2 Parametric
  520.                  ----------
  521.     
  522.     Syntax:  x = f(t), y = g(t) [,a..b]     (or simply f(t), g(t) [,a..b])
  523.     
  524.     Certain types of curves in the x-y plane cannot be expressed in the
  525.     form 'y=f(x)'.  Parametric equations are more flexible, and can even be
  526.     used as a superset of equations in the 'y=f(x)' form.  'y=f(x)' can be
  527.     expressed as 'x=t, y=f(t)', with the advantage of being able to set an
  528.     interval.  Equations in the form 'x=f(y)' can also be entered as a
  529.     parametric equation, in the form 'x=f(t), y=t' with an optional
  530.     interval.  If the optional interval is omitted, UCALC uses 0..2pi.
  531.     
  532.     Examples:
  533.     ---------
  534.     
  535.     ucalc> PLOT x= cos(t), y= t-2
  536.     
  537.     ucalc> PLOT cos(t), t-2     ; This is the same as above
  538.     
  539.     ucalc> PLOT cos(t)+2, sin(t)/pi, 0..3pi
  540.     
  541.     ucalc> PLOT t, 2 cos(t), -5..5 ; Same as y=2 cos(x) but from -5 to 5
  542.     
  543.     NOTE:  Remember that the variable parameter is 't' (and not 'x').
  544.     
  545.     
  546.            9.6.3 Polar
  547.                  -----
  548.     
  549.     Syntax: r = f(t) [,a..b]
  550.     
  551.     'r=' is what makes UCALC recognize that it's a polar equation.  If the
  552.     optional a..b range is not entered, then the default 0..2pi will be
  553.     used.  The variable parameter for polar equations is 't'.
  554.     
  555.     Examples:
  556.     ---------
  557.     
  558.     ucalc> PLOT r=t/pi, 0..10pi
  559.     
  560.     ucalc> PLOT r=sin(t)
  561.     
  562.     ucalc> PLOT r=t*sin(t)
  563.     
  564.     
  565.            9.6.4 Plotting data from another file
  566.                  -------------------------------
  567.     
  568.     Syntax:  "mygraph.dat"
  569.     
  570.     Graphs from a text file can be plotted by entering the name of the file
  571.     inside quotes.  The file must consist of a list of x and y coordinates
  572.     which are separated by spaces, or a comma.  The file may look something
  573.     like this:
  574.     
  575.     -10            .5440211108893698
  576.     -9            -.4121184852417566
  577.     -8            -.9893582466233818
  578.     -7            -.6569865987187891
  579.     etc...
  580.     
  581.     Example:
  582.     --------
  583.     
  584.     ucalc> PLOT"mygraph.dat"
  585.     
  586.     
  587.            9.6.5 Line segment
  588.                  ------------
  589.     
  590.     Syntax:  LINE(x1,y1,x2,y2)
  591.     
  592.     This produces a line segment with endpoints (x1,y1) and (x2,y2).
  593.     
  594.     Example:
  595.     --------
  596.     
  597.     ucalc> PLOT line(3,2,5,7)
  598.     
  599.     
  600.            9.6.6 Rectangle
  601.                  ---------
  602.     
  603.     Syntax:  RECT(x1,y1,x2,y2)
  604.     
  605.     This produces a rectangle which has opposing corners (x1,y1) and
  606.     (x2,y2).
  607.     
  608.     Example:
  609.     --------
  610.     
  611.     ucalc> PLOT rect(0,0,5,6)
  612.     
  613.     
  614.            9.6.7 Filling an area
  615.                  ---------------
  616.     
  617.     Syntax:  FILL(x,y)
  618.     
  619.     This fills a bounded area on the screen in which (x,y) is located.  In
  620.     monochrome mode, it fills the area around (x,y) enclosed within any
  621.     other curve, or the edge of the screen.  If the graphs are in multiple
  622.     colors, then the FILL statement only uses the color of the preceding
  623.     graph as a boundary.  Fill is more useful when used with multiple
  624.     graphs.  See section '9.6 Plotting' for an example.
  625.     
  626.     
  627.        9.7 Moving the crosshair
  628.            --------------------
  629.     
  630.     After the graphs have been plotted, a crosshair (graphic cursor) is
  631.     placed at the upper left hand corner of the screen.  It can be moved
  632.     with the arrow keys in order to pinpoint coordinates on the screen. 
  633.     The Home, End, PgUp, and PgDn keys can also be used, for diagonal
  634.     movement.  To move the crosshair slowly, press the key and release it
  635.     quickly.  To move it faster, hold the key down as it accelerates.
  636.     
  637.     
  638.        9.8 Printing a graphic screen
  639.            -------------------------
  640.     
  641.     In order to be able to send graphs to the printer, run GRAPHICS.COM
  642.     (which comes with DOS) before loading UCALC.  Then, when a graph is on
  643.     the screen, press the 'Print Screen' key to send it out to the printer. 
  644.     For better results on printers which do not support color, issue the
  645.     MONO command at the 'ucalc> ' prompt before plotting.  See the DOS
  646.     manual for more details on GRAPHICS.COM.  This version of UCALC has no
  647.     built-in mechanism for printing.
  648.     
  649.     
  650.     10. Summation
  651.         =========
  652.     
  653.     Syntax:    SUM(fx,a..b [,dx])
  654.     
  655.          b
  656.         ____
  657.         \    f(x)    is written as SUM(f(x),a..b), where f(x) is your
  658.         /___         function, and a..b is the range.
  659.         x= a         The summation cannot be part of another expression.
  660.     
  661.     The optional  dx  parameter can be used to indicate an increment other
  662.     than the default 1.
  663.     
  664.     Examples:
  665.     ---------
  666.     
  667.     ucalc>   sum(x^2+2*x+14,5..1000)
  668.     Answer:  334848394
  669.     
  670.     ucalc>   sum(x^3-2,1..15,.1)
  671.     Answer:  127971.6
  672.     
  673.     SUMTABLE is the same as SUM, except that intermediate values are
  674.     printed as the sum is being added.
  675.     
  676.     ucalc>  sumtable(x^2/fact(x),1..3)
  677.        Count         Value         Cumulative
  678.        1             1             1
  679.        2             2             3
  680.        3             1.5           4.5
  681.     
  682.     Answer:  4.5
  683.     
  684.     A long list can be aborted with the [Esc] key.
  685.     
  686.     
  687.     11. Numerical Integration
  688.         =====================
  689.     
  690.     Syntax:    INTEG(fx,a..b [,n])
  691.     
  692.     This approximates the value for the definite integral of fx, using
  693.     Simpson's rule.  This rule requires that  n  be an even number.  UCALC
  694.     takes care of that by automatically transforming  n  to the next
  695.     highest even number (n = n + n mod 2).  If no value for n is given,
  696.     then 100 is used as the default number of subdivisions.  This command
  697.     works properly only when fx is a continuous function.
  698.     
  699.     Examples:
  700.     ---------
  701.     
  702.     ucalc>   integ(x*sin(x),0..pi)
  703.     Answer:  3.14159267059288459
  704.     
  705.     ucalc>   integ(1-x^2,0..1,8)
  706.     Answer:  .666666666666666667
  707.     
  708.     
  709.     12. Solving Equations
  710.         =================
  711.     
  712.     Syntax:    SOLVE(fx [=fx] [,a..b])
  713.     
  714.     This solves an equation for the value of 'x'.  The statements in
  715.     brackets are optional.  If the expression on the right of the = sign is
  716.     0, then you can simply do:  SOLVE(expression).  For instance,
  717.     SOLVE(3*x+2=0) can be written as SOLVE(3*x+2).  If the equation happens
  718.     to have several solutions, you can indicate the domain (a..b) of the
  719.     particular solution you are interested in.
  720.     
  721.     The algorithm used in this program for solving equations is the
  722.     Bisection Method, which is a special case of the Intermediate Value
  723.     Theorem.  A solution can be found for continuous functions in the range
  724.     a < x < b, where f(a) < 0 < f(b).  If a..b is not defined, then the
  725.     default range is from -1E6 to 1E6.  If a real solution does exist, but
  726.     cannot be found with the default range, then try narrowing the range as
  727.     much as possible.
  728.     
  729.     Examples:
  730.     ---------
  731.     
  732.     ucalc>   solve( exp(x+x^2)-sqr(x+5) = 127 )
  733.     Answer:  1.76151609179570087
  734.     
  735.     ucalc>   solve( cos(x), pi/2..pi )
  736.     Answer:  1.57079632679489662
  737.     
  738.     ucalc>   solve( x^3+2*x+5 = 10+7 )
  739.     Answer:  2
  740.     
  741.     ucalc>   solve( 2*x^2-3 )
  742.     Answer:  1.22474487139158905
  743.     
  744.     
  745.     13. LOAD command
  746.         ============
  747.     
  748.     Syntax:  LOAD"filename"
  749.     
  750.     This command loads up the contents of a file into the UCALC workspace.
  751.     The file may contain any UCALC command.  A file saved with the WRITE
  752.     command however, cannot be loaded directly if it contains 'ucalc> '
  753.     prompts.
  754.     
  755.     Examples:
  756.     ---------
  757.     
  758.     ucalc> load"convert.def"
  759.     ucalc> load"finance.def"
  760.     ucalc> load"formula.asc"
  761.     
  762.     
  763.     14. WRITE command
  764.         =============
  765.     
  766.     Syntax:  WRITE"filename"
  767.     
  768.     This command records your UCALC session to a file name that you
  769.     specify.  Everything that is displayed on the screen will go to that
  770.     file verbatim, until you issue the CLOSE command, or exit to DOS.  If
  771.     the file already exists, the WRITE command will append to it.
  772.     
  773.     Example:
  774.     --------
  775.     
  776.     ucalc> write"ucalc.log"
  777.     
  778.     
  779.     15. SHELL command
  780.         =============
  781.     
  782.     Syntax:  SHELL
  783.     
  784.     This allows you to drop to DOS temporarily.  To resume your session,
  785.     type EXIT at the DOS prompt.  [F4] does the same thing as the SHELL
  786.     command.  You may also pass a command for DOS to execute.
  787.     
  788.     Examples:
  789.     ---------
  790.     
  791.     ucalc> shell"dir"     ; This executes the DIR command.
  792.     ucalc> shell          ; This drops you to DOS until you type EXIT.
  793.     
  794.     
  795.     16. Numerical Notations
  796.         ===================
  797.     
  798.     The default numerical type is DECIMAL.  Binary, octal, and hexadecimal
  799.     number types are also supported.  The latter types must be preceded by
  800.     the  #  (number sign) symbol, and one of the letters "h", "b", or "o",
  801.     for hexadecimal, binary, or octal in that respective order.  The $ sign
  802.     for hexadecimal notation can be used as a shortcut.  See examples.
  803.     
  804.     In order to see all your answers in hex, binary, and octal, issue the
  805.     command:  mode HBO
  806.     
  807.     Exponential notation is also supported.  These are numbers followed by
  808.     the letter E, and an exponent number.  For instance:  3.4E+5 translates
  809.     to 3.4*10^5, and 3.4E-5 translates to 3.4*10^(-5).
  810.     
  811.     Examples:
  812.     ---------
  813.     
  814.     #b110101110,   #o656,   #h1AE,   $1AE,   430,   4.3E2
  815.     are all the same number.
  816.     
  817.     #b10101^2 * 5/$1EF + sin(5.8+2)*cos(#o302)-7E6  is a valid expression.
  818.     
  819.     
  820.     17. Implicit Multiplications
  821.         ========================
  822.     
  823.     When writing math expressions, it is common to omit the times symbol
  824.     (*), when multiplication is implied.  For instance, one may write
  825.     '2x+5', which is the same as '2*x+5'.  The following are examples of
  826.     implied multiplications supported by UCALC.
  827.     
  828.     Expression                    Equivalent
  829.     ----------                    ----------
  830.     x y                           x*y
  831.     3pi+10                        3*pi+10
  832.     5(4+8)                        5*(4+8)
  833.     (5+5)(3+9)                    (5+5)*(3+9)
  834.     (3+2)8                        (3+2)*8
  835.     
  836.     NOTE:  Implicit multiplication has the same priority as regular
  837.            multiplication.  For instance '1/2q' is the equivalent of
  838.            '1/2*q' not '1/(2q)'.  (This is subject to change in a future
  839.            version).
  840.     
  841.     
  842.     18. Assigning Variables
  843.         ===================
  844.     
  845.     Variables can be used to store values, which can later become part of
  846.     an expression.  They are composed of letters of the alphabet, and may
  847.     contain numerical digits, as long as a numerical digit is not the first
  848.     character.
  849.     
  850.     Examples:
  851.     ---------
  852.     
  853.     mynumber = 12345
  854.     mass = 15
  855.     speed = 23+10.5
  856.     m1 = 10*pi^2
  857.     c2 = sqrt(37) + 5
  858.     
  859.     
  860.     19. Assigning Functions
  861.         ===================
  862.     
  863.     Once defined, a user function can be used anywhere a built-in function
  864.     can be used.  The naming convention of functions is similar to that of
  865.     variables.  Argument names used in defining functions are temporary,
  866.     and do not affect user variables with the same name.  The name of the
  867.     function itself, however, should be unique.  User functions can accept
  868.     many arguments.
  869.     
  870.     Examples:
  871.     ---------
  872.     
  873.     cube(x) = x^3
  874.     area(r,h) = pi*r*sqr(r^2+h^2)  ; area of right circular cone
  875.     logx(base,num) = ln(num) / ln(base)
  876.     abc() = 5 + sin(b)
  877.     
  878.     
  879.     20. UCALC.DEF
  880.         =========
  881.     
  882.     Commonly used constants & functions, such as e, and logx(x,y) and any
  883.     others that are used regularly, can be defined in UCALC.DEF.  This file
  884.     can be created or modified with any ASCII text editor.  The semicolon
  885.     (;) can be used as a remark.  Anything following it will not be
  886.     interpreted as part of the expression.
  887.     
  888.     Every time UCALC is run, it looks for UCALC.DEF in the current
  889.     directory first, and then in the directory which UCALC.EXE was loaded
  890.     from.  If the file is found, its functions and variables are loaded. 
  891.     The /NODEF option at the command line is equivalent to not having a
  892.     UCALC.DEF file.
  893.     
  894.     Here is an example of what UCALC.DEF may look like:
  895.     
  896.     fix 5
  897.     mode ega
  898.     window(-10,10,-7,7)
  899.     load"convert.def"
  900.     prompt""             ; Removes the default 'ucalc> ' prompt
  901.     prompta"A:"          ; Replaces the default 'Answer: ' prompt with 'A:'
  902.     
  903.     e       = 2.718281828459045  ;  Natural log constant
  904.     gravity = 9.8                ;  Acceleration due to gravity
  905.     na      = 6.0221367E+23      ;  Avogadro's number 1/mol
  906.     
  907.     logx(base,num) = log(num) / log(base)
  908.     
  909.     A total maximum of 300 variables, and 200 user functions can be
  910.     defined.
  911.     
  912.     
  913.     21. Technical Notes
  914.         ===============
  915.     
  916.     o DOS IO:  A file with calculations to be performed may be created
  917.       ahead of time with your favorite text editor, and passed at the
  918.       command line in the following format:
  919.     
  920.       UCALC < MYFILE.DAT > RESULT.DAT
  921.     
  922.       An expression at the command line can also be redirected: 
  923.       UCALC sumtable(2*x+5,1..1000) > RESULT.DAT
  924.     
  925.     o End-of-file:  When doing redirection from the DOS command line, make
  926.       sure that the input file ends with an end-of-file marker (^Z, or
  927.       ASCII 26).  Many text editors take care of this automatically, but a
  928.       few don't.  An input file may alternatively end with a ^C (ASCII 3)
  929.       or the EXIT command.  Be sure to add several blank lines at the end
  930.       of the input file.  An input file with no ^C, ^Z or EXIT, and no
  931.       blank lines at the end may cause UCALC to freeze.
  932.     
  933.     o Ugly Numbers:  Occasionally, numbers are not displayed as one might
  934.       expect.  For instance you might get 8.23423423982432343E-18 instead
  935.       of 0, or .499999999999999999 instead of .5, which is actually pretty
  936.       close to the answer.  This may happen as a result of lengthy
  937.       operations, or certain types of functions.  One solution is to reduce
  938.       the number of decimal digits that are displayed with the FIX command.
  939.     
  940.     o Command Line Conflicts:  Certain symbols used by UCALC may also be
  941.       interpreted by DOS or other command shells.  If there is a conflict,
  942.       then enclose the command line expression in quotes, such as the
  943.       following:
  944.       
  945.       UCALC "(5^4 | 18) < 10"
  946.     
  947.     o HBO mode:  When this mode is on, it will display the hex, binary, and
  948.       octal notations, only for values between -32766 and 65535.  Numbers
  949.       beyond that range are displayed only in decimal form.  Negative
  950.       numbers are represented in "two's complement" form.  Only the integer
  951.       part of a number is displayed in hex, bin, and oct.  Entering 'MODE
  952.       HBO' turns the HBO mode on.  Typing the same command again turns it
  953.       back off.
  954.     
  955.     o Relational operators return a 1 for true expressions, and 0 for false
  956.       ones.  For instance,  5 > 3 = 1, and 5 < 3 = 0.
  957.     
  958.     o Compound Functions:  Functions with multiple entries may be defined
  959.       by using relational operators.  For instance:
  960.     
  961.                 / 2+x^2,   x > 0
  962.         f(x) = |  3,       x = 0
  963.                 \ x*2+8,   x < 0
  964.     
  965.        can be written as:
  966.     
  967.         f(x) = (2+x^2)*(x > 0)  +  (3)*(x = 0)  +  (x*2+8)*(x < 0)
  968.     
  969.     o Equal Sign:  The single equal sign, =, can be used both for assigning
  970.       functions & variables, and as a relational operator.  If there is a
  971.       conflict in the logic of an expression such that it can be taken
  972.       either way, then use the double equal sign, ==, when a relational
  973.       operator is intended.  An assignment is assumed only when the
  974.       expression left of the left-most equal sign is a valid function or
  975.       variable name.
  976.     
  977.     o Limited Function Space:  There is a limit of instructions (such as +,
  978.       -, *, etc...) which can be used for defining functions.  Every time a
  979.       function is defined or redefined, part of the instruction list is
  980.       filled, and cannot be reclaimed during a UCALC session.  An error
  981.       message is given when too many functions have been defined.
  982.     
  983.     o Each expression can use a maximum of 33 instructions.  If an
  984.       expression is too long, UCALC returns an error message.  Expressions
  985.       can be broken down into several shorter ones.
  986.     
  987.     o Variable names:  Variable and function names may be up to 1024
  988.       characters long, which should be more than enough for most purposes. 
  989.       These names may consist of any ASCII character other than those used
  990.       as operators.  The first character cannot be a numerical digit.  A
  991.       variable should not have the same name as a function, due to support
  992.       for implicit multiplication.
  993.     
  994.     o UCALC is not case sensitive.  Upper case letters are treated just the
  995.       same as lower case letters.  For instance, pi, PI, and Pi are all
  996.       treated the same.
  997.     
  998.     o Text Buffer:  The last 100 lines can be recalled using the up (or
  999.       down) arrow keys.
  1000.     
  1001.     o Rounding:  The rounding method in UCALC is called banker's rounding. 
  1002.       With this method, numbers are rounded towards the closest even
  1003.       number.  For instance, both 11.50 and 12.50 are rounded to 12, and
  1004.       both 13.50 and 14.50 are rounded to 14, when FIX is set to 0.  Only
  1005.       the displayed number is rounded, but the actual calculations are
  1006.       performed in high precision.
  1007.     
  1008.     o Random Numbers:  The RND function produces a random number between 0
  1009.       and 1.  RND(1) returns a new random number each time it is used. 
  1010.       RND(0) returns the previously used random number.  If x is negative,
  1011.       then RND(x) returns a predictable number.  For instance, RND(-5) will
  1012.       produce the same number each time.  To get a random number between 0
  1013.       & x, simply use RND(1)*x.  For instance, RND(1)*50 will return a
  1014.       random number between 0 & 50.
  1015.     
  1016.     o When UCALC is loaded, it automatically detects which graphic card to
  1017.       use.  To override UCALC's selection, the MODE command (with CGA, EGA,
  1018.       VGA, or HGC) can be placed in UCALC.DEF.
  1019.     
  1020.     o The graphic screen is optimized for the VGA mode.  With lower
  1021.       resolution, the crosshair will give a less accurate reading of its
  1022.       location on the screen.  WINDOW(-10,10,-7,7) is a better setting for
  1023.       the EGA mode.
  1024.     
  1025.     
  1026.     22. Registration
  1027.         ============
  1028.     
  1029.     UCALC is not "free", neither is it "public domain".  It is a
  1030.     copyrighted program distributed through the shareware channel.  This
  1031.     allows users to try the program first to see if it suits their needs. 
  1032.     If you decide to continue using it, then please remember to pay the
  1033.     author the requested registration fee.  UCALC costs only $25 for
  1034.     individual use, or less per machine for a site license.  Some users may
  1035.     even qualify for a free registration.
  1036.     
  1037.     As in the first version, I am now offering several bonus features
  1038.     available only to those who register, as an incentive.  In the
  1039.     registered version:
  1040.     
  1041.     - Colors in the text screen and graphic mode can be changed.
  1042.     - The axis can be turned off or on or have a different color.
  1043.     - A grid can be added in the graphic mode.
  1044.     - Text can be added in the graphic screen.
  1045.     - Graphs can optionally be plotted by unconnected dots.
  1046.     
  1047.     * And of course, it has no registration reminder text.
  1048.     
  1049.     More importantly, your registration will help pay for past debts
  1050.     related to the development of UCALC.  It will encourage me to continue
  1051.     adding new features.  It will also help keep me online to support my
  1052.     program.
  1053.     
  1054.     In order to help me better support this program, please answer the
  1055.     questions in QUEST.DOC, whether you decide to register or not.  This
  1056.     will allow me to keep the price down, and add the right features in the
  1057.     next version.  Use the form in REGISTER.DOC to place your registration.
  1058.     
  1059.     Easy Service
  1060.     ------------
  1061.     For your convenience, you can order UCALC from the Public Software
  1062.     Library with your Visa, Master Card, American Express, or Discover card
  1063.     by calling toll-free at 1-800-242-4PSL (overseas: 713-524-6394) or by
  1064.     FAX to 713-524-6398, and even by Compuserve at 71355,470.  THESE
  1065.     NUMBERS ARE FOR ORDERING ONLY.  I can NOT be reached at those numbers.
  1066.     
  1067.     To registered users of UCALC v1.8
  1068.     ---------------------------------
  1069.     Those who have registered any previous version of UCALC may get this
  1070.     one for only $10.
  1071.     
  1072.     Support
  1073.     -------
  1074.     I will try to extend my support to unregistered users during their
  1075.     evaluation period, however, I reserve the right to limit my support for
  1076.     unregistered users if their requests become taxing for me.  I much 
  1077.     prefer to communicate by e-mail, rather than postal mail.
  1078.     
  1079.     FREE registration for qualified students
  1080.     ----------------------------------------
  1081.     If your school lab has a site license for the Ultimate Calculator for
  1082.     use on 10 or more computers, then up to five students from your school
  1083.     may receive a free registered copy of the program.  All you have to do
  1084.     is send me a request for your free copy, along with the name of your
  1085.     school.  Please check with the lab personnel first to make sure you are
  1086.     one of the first five in your school to claim the free registration.
  1087.     
  1088.     This offer is good for up to two months after your school lab has
  1089.     ordered its license, and may end when the next version of UCALC is
  1090.     released.  If your school doesn't already have a site license, then
  1091.     encourage them to get one.
  1092.     
  1093.     License
  1094.     -------
  1095.     For this license agreement, a site is considered to be any corporation,
  1096.     institution, government agency, computer lab, or non-personal
  1097.     organization, with more than one computer capable of running the UCALC
  1098.     software, and with a locally accessible tech support person or team. 
  1099.     This definition of a site is subject to change.
  1100.     
  1101.     A site may use the unregistered version for evaluation purposes only. 
  1102.     If the site decides to continue using UCALC after 30 days, a site
  1103.     license must be purchased.  The site license arrangement provides for
  1104.     volume discounts.  See the file named REGISTER.DOC for the low rates
  1105.     that are available.
  1106.     
  1107.     A site license is for use of the software within your site, and is not
  1108.     transferable.  This license allows the internal use and copying of the
  1109.     software by as many computers as contracted for.  Distribution,
  1110.     repackaging, or reselling of the licensed version to third parties is
  1111.     not allowed under this agreement.  The unregistered version however may
  1112.     be freely distributed.
  1113.     
  1114.     The LICENSOR (Daniel Corbier) warrants that it is the sole owner of the
  1115.     UCALC software and has full power and authority to grant this license
  1116.     herein without consent of any other party.
  1117.     
  1118.     Disclaimer
  1119.     ----------
  1120.     The Ultimate Calculator (UCALC) is provided on an "as is" basis without
  1121.     warranty of any kind, expressed or implied.  The person using the
  1122.     software bears all risk as to the quality and performance of the
  1123.     software.  The author will not be held liable for any special,
  1124.     incidental, consequential, direct or indirect damages due to any
  1125.     malfunctions.
  1126.     
  1127.     Aside from the legal stuff, I'm eager to support this program as much
  1128.     as possible.  I want to hear your suggestions for the next release.
  1129.     
  1130.     
  1131.     23. Shareware Author & User Case Study
  1132.         ==================================
  1133.     
  1134.     When developing UCALC, I had hoped to get many registrations, or at
  1135.     least enough to support the cost of development.  After releasing the
  1136.     first version, I started getting an occasional registration from time
  1137.     to time, each one being very helpful, but overall not enough to cover
  1138.     the cost of development.  I changed the registration incentive tactics
  1139.     in the following version.  Things did not pick up, but instead
  1140.     registrations became much more sparse.
  1141.     
  1142.     This lead me to do some research to find the right ingredients for
  1143.     getting people to register.  I conducted a survey asking many shareware
  1144.     users what motivates them to register.  I also asked a number of well-
  1145.     known successful shareware authors what they have done to receive many
  1146.     registrations.  The results are written in a document which can be
  1147.     found on many BBSes.  Here's the description:
  1148.     
  1149.     Filename:  SAUCS1.ARJ (or .ZIP, .LZH, .SDN, ..)
  1150.     
  1151.     Description:   SHAREWARE AUTHOR & USER CASE STUDY v1 - Answers
  1152.                    questions that shareware authors often ask, such as what
  1153.                    motivates users to register, what prevents them from
  1154.                    doing so, how much they are willing to pay, how to get
  1155.                    one's program "out there", whether or not crippling and
  1156.                    nagging works, how long users take to evaluate programs
  1157.                    before paying, etc ...  Answers are based on survey
  1158.                    responses from shareware users and successful authors.
  1159.     
  1160.     Size:  42k (when compressed with ARJ)
  1161.     
  1162.     
  1163.     24. My Address
  1164.         ==========
  1165.     
  1166.     For information about dealer pricing, volume discounts, site licensing,
  1167.     latest version, suggestions, or for technical information, you can
  1168.     contact me through one of the following means:
  1169.     
  1170.     US Mail:
  1171.         Daniel Corbier
  1172.         11670 NE 20th Dr
  1173.         Miami, FL  33181
  1174.     
  1175.     Internet:
  1176.         corbier@delphi.com
  1177.     or  corbier@satelnet.org
  1178.     
  1179.     Fidonet:
  1180.         Daniel Corbier at 1:135/110 or Daniel Corbier at 1:135/23
  1181.     
  1182.     Compuserve:
  1183.         INTERNET:  corbier@delphi.com
  1184.     or  INTERNET:  corbier@satelnet.org
  1185.     
  1186.     In the Miami area, I usually frequent the following BBSes daily:
  1187.     
  1188.     Telcom Central   305-828-7909
  1189.     MACC             305-596-1854
  1190.     SOX              305-821-3317
  1191.     
  1192.     
  1193.     I usually read the following conferences on a daily basis:
  1194.     
  1195.     Fidonet:  Shareware, ECPROG, Science and more
  1196.     Internet:  various comp.sys, and sci.math newsgroups
  1197.     
  1198.     
  1199.     25. Distribution
  1200.         ============
  1201.     
  1202.     You are encouraged to distribute the shareware version of the Ultimate
  1203.     Calculator.  The following files must all be present and unmodified
  1204.     when distributed:
  1205.     
  1206.     UCALC.DE      Example for a UCALC.DEF file
  1207.     UCALC.EXE     Executable
  1208.     UCALC.DOC     Documentation
  1209.     QUEST.DOC     Questionnaire
  1210.     HISTORY.DOC   Lists the features that were added in each version
  1211.     EXAMPLES.DOC  Examples for Ucalc
  1212.     REGISTER.DOC  Registration form
  1213.     PLOTDEMO      Graphic demo.  Type UCALC < PLOTDEMO from DOS to see it
  1214.     GRAPH1.DAT    Sample data file for the graphic demo
  1215.     GRAPH2.DAT    Another sample data file
  1216.     CONVERT.DEF   Conversion functions
  1217.     FILE_ID.DIZ   Descriptions for BBS use
  1218.     
  1219.     The compressed file name must be UCALC24.??? or UCAL24.??? (replace ???
  1220.     with ARJ, ZIP, LZH or whatever compression suffix being used).
  1221.     
  1222.     Vendors
  1223.     -------
  1224.     Vendors may distribute UCALC, as long as it is not labeled "free",
  1225.     "cheap", "copyright free", or "public domain".  It must be made clear
  1226.     to customers that this program is shareware, and that a payment must be
  1227.     made to the author if they continue using it.  All ASP distributors in
  1228.     good standing may distribute the Ultimate Calculator without my written
  1229.     permission (although I would appreciate a copy of your catalog).
  1230.     
  1231.     Vendors who operate with good business ethics should feel free to
  1232.     distribute UCALC without my written permission.
  1233.     
  1234.     26. Acknowledgments
  1235.         ===============
  1236.     
  1237.     I would like to thank those who have registered UCALC, and everyone who
  1238.     has sent suggestions.  I would also like to thank the following people
  1239.     for being beta testers for the Ultimate Calculator:
  1240.     
  1241.     Jonathan Borwein   University of Waterloo
  1242.     David G. Caraballo Princeton University
  1243.     Elan Feingold      Cornell University
  1244.     Daryl Gungadoo     Andrews University
  1245.     James Hague
  1246.     Rich Holland       Kansas State University
  1247.     Willie Hutton      University of Colorado
  1248.     Mark W Jacobs      Stanford University
  1249.     Michael D. Lawler  Ball State University
  1250.     Chris Long         Rutgers University
  1251.     Mark E. Mallett
  1252.     Peter Paul Meiler  TNO Physics & Electronics Lab, the Netherlands
  1253.     Marty Milette      Mitel Corporation
  1254.     Matt Pardo         North Carolina Medical Center
  1255.     Alexander Pruss    University of British Columbia
  1256.     Glauber Ribeiro    O.C. International, Brazil
  1257.     Dave Sklar         Temple University
  1258.     John Steele        Video Business Systems
  1259.     David Steinman     University of Toronto
  1260.     Sue Widemark
  1261.     Shi-Chang Wooh     Northwestern University, Illinois
  1262.     
  1263.                     <<<<  END OF UCALC DOCUMENTATION  >>>>
  1264.